home *** CD-ROM | disk | FTP | other *** search
/ Amiga Games: Greatest Hits 1996 / Amiga Games: Greatest Hits 1996.iso / userbox / publicdomain / correctname / correctname.mod < prev    next >
Text File  |  1995-10-06  |  2KB  |  78 lines

  1. (*(*
  2.  *
  3.  * $Id: CorrectName.mod 37.4 1995/10/06 16:15:27 tig Exp tig $
  4.  *
  5.  * $Log: CorrectName.mod $
  6.  * Revision 37.4  1995/10/06  16:15:27  tig
  7.  * Error code (warn) will be returned only if the option "ShowErrors" is set!
  8.  *
  9.  * Revision 37.3  1995/10/04  05:46:32  tig
  10.  * The error msgs allways (!) won't be printed if SHOWERR isnt' used.
  11.  * If the commandline couldn't be parsed (by DOS) then the whole command-
  12.  * line will be returned!
  13.  *
  14.  * Revision 37.2  1995/10/02  05:30:14  tig
  15.  * - Added option "ERR=SHOWERROR/S".
  16.  *   If set on startup error-msgs will be printed, else the old (the given)
  17.  *   filename will be returned!
  18.  * - Added FP as an abbreviation for FILEPART.
  19.  *
  20.  * Revision 37.1  1995/10/01  14:23:46  tig
  21.  * First version.
  22.  *
  23.  *****************************************************************
  24.  * 
  25.  * Usage: CorrectName FileName/A,FP=FilePart/S,Err=ShowErrors/S
  26.  *
  27.  * "FileName" must be used and specifies the filename.
  28.  * "FP=FilePart" is optional. If used, only the filename w/o path
  29.  *  is printed else filename with full path!
  30.  * "Err=ShowErrors" is optional. If set on startup error-msgs will
  31.  * be printed, else the old (the given) filename will be returned!
  32.  * 
  33.  *)*)
  34. MODULE CorrectName;
  35. IMPORT
  36.    y: SYSTEM, ol: OberonLib, d: Dos;
  37. CONST
  38.    tmp = "FileName/A,FP=FilePart/S,Err=ShowErrors/S"
  39.           "\o$VER: CorrectName 37.4 (06.10.95) by Thomas Igracki";
  40. VAR
  41.    RD    : d.RDArgsPtr;
  42.    args : STRUCT (dummy: d.ArgsStruct)
  43.             fileName: d.ArgString;
  44.             filePart,
  45.             showErrs: d.ArgBool;
  46.           END;
  47.    lock : d.FileLockPtr;
  48.    buff : ARRAY 100 OF CHAR;
  49. BEGIN
  50.      RD := d.ReadArgs (tmp,args,NIL);
  51.      IF RD # NIL THEN
  52.         lock := d.Lock (args.fileName^, d.sharedLock);
  53.         IF lock # NIL THEN
  54.            IF d.NameFromLock (lock, buff, SIZE(buff)) THEN
  55.               IF args.filePart = d.DOSTRUE THEN
  56.                  d.PrintF (d.FilePart(buff)^)
  57.               ELSE
  58.                  d.PrintF (buff)
  59.               END;
  60.               HALT(d.ok) (* *)
  61.            END;
  62.         END;
  63.      END;
  64.      HALT(d.warn)
  65. CLOSE
  66.      IF ol.Result # 0 THEN
  67.         IF RD = NIL THEN args.fileName := ol.dosCmdBuf END;
  68.  
  69.         IF args.showErrs = d.DOSTRUE THEN
  70.            y.SETREG(0,d.PrintFault(d.IoErr(),NIL))
  71.         ELSE
  72.            ol.Result := 0; d.PrintF (args.fileName^)
  73.         END
  74.      END;
  75.      IF lock # NIL THEN d.UnLock (lock) END;
  76.      IF RD   # NIL THEN d.FreeArgs (RD) END;
  77. END CorrectName.
  78.